En su día añadimos un efecto rollover en imágenes, me han pedido si podía explicar un poco sobre el funcionamiento así que ahí va.

Aunque aparentemente estamos aplicando el efecto a una imagen en realidad lo que hacemos es aplicarlo a un enlace. Para conseguirlo necesitamos el evento onmouseOver.Una imagen no admite el evento onmouseOver entonces lo que hacemos es incorporar la imagen dentro del enlace.

Si fuera un enlace normal en a href añadiríamos la url de un enlace, como no se trata de crear ningún enlace sino de crear un efecto lo que hacemos es añadir "#" en lugar de la url del enlace, y en onClick añadimos "return false"

<a href= "#" onmouseOver="document.rollover.src='tu-2ª-imagen-';" onClick="return false;">

Nos falta lo principal, y es una ruta para que al clicar nos lleve a otra imagen cuyo resultado sería el efecto rollover.
Lo conseguimos asignando un nombre a la imagen.

<img name="rollover" src="tu-imagen" width="100" height="100" border="0">
</a>

El resultado de todo esto sería:

<a href= "#" onmouseOver="document.rollover.src='tu-2ª-imagen-';" onClick="return false;">
<img name="
rollover" src="tu-imagen" width="100" height="100" border="0">
</a>




Hasta ahí todo normal, el efecto rollover hace que al pasar el cursor sobre la imagen cambie, pero no vuelve a su estado original. Eso quiere decir que le falta el evento "onmouseOut"
El evento "onmouseOver" se ejecuta cuando pasamos la flecha del mouse sobre un enlace y el evento "onmouseOut "cuando la flecha lo abandona.

<a href= "#" onmouseOver="document.rollover.src='tu-2ª-imagen';" onClick= "return false;" onmouseOut="document.rollover.src='tu-imagen';">
<img name="rollover" src="tu-imagen" width="100" height="100" border="0">
</a>



ejemplo de rolloversimple


Os preguntaréis por qué en el enlace que he dejado al principio de esta entrada era necesario añadir un script, la respuesta es muy sencilla. Cuando se aplica el evento onmouseOver estamos llamando a la 2ªimagen. Al no estar cargada en la memoria caché del navegador necesita hacer una petición HTTP al servidor.

La forma de solucionar eso es precargar la imagen antes de que se ejecute el evento. De esta forma el navegador la tiene disponible en su caché y el cambio de imagen es instantáneo.
Lo solucionamos añadiendo justo antes de </head> lo siguiente:

<script language="JavaScript" type="text/javascript">
imagenOn = new Image(100,100);
imagenOn.src = "tu-2ª-imagen";
</script>

En new Image(100,100); pondremos el mismo tamaño de imagen que utilizamos para el efecto.
En tu-2ª-imagen añadiremos la url de la segunda imagen mostrada para el efecto del rollover.

Suerte en el trabajo Alejandro ;)


paqui

hola gema, en mi blog puse los botones que tienes en el tuyo, para entradas antiguas, inicio, etc......, pero no se donde lo coloque en la plantilla, me podrias recordar donde fue, los veo cuando estoy en el pc de casa pero no se ven cuando estoy en otros pc y los tuyos tampoco los veo, era para subir la imagen desde otro alojamiento.

Responder
paqui

Gema, te lo mando de nuevo porque creo que no le viste

Responder
Gem@

Hola Paqui precisamente estaba viendo tu blog :D
Con Explorer y Firefox los iconos de mi blog se ven sin problemas, sin embargo los tuyos no los veo con ninguno de los dos navegadores.
Si estás segura que los añadiste prueba a localizar los botones de navegación buscando lo siguiente:

<b:includable id='nextprev'>
<div id='blog-pager'>
<b:if cond='data:newerPageUrl'>
<a expr:href='data:newerPageUrl' expr:title='data:newerPageTitle' id='blog-pager-newer-link'>
<img src='http://img58.imageshack.us/img58/8076/leftxv5.png'/>
</a>
</b:if>

<b:if cond='data:olderPageUrl'>
<a expr:href='data:olderPageUrl' expr:title='data:olderPageTitle' id='blog-pager-older-link'>
<img src='http://img260.imageshack.us/img260/9691/rightli5.png'/>
</a>
</b:if>

<a class='home-link' expr:href='data:blog.homepageUrl'>
<img src='http://img260.imageshack.us/img260/6710/homepngrg7.jpg'/>
</a>
</div>
<div class='clear'/>
</b:includable>

Lo que está en negrita son las direcciones de las imágenes, si lo copiaste tal cual está deberían ser las mismas.

Responder
paqui

Gema desde casa los veo bien con los dos navegadores pero desde el pc del trabajo no los veo ni en tu blog ni en el mio

Responder
Gem@

Debe ser el navegador Paqui.

Responder
Quassanex

Hola Gem@: te escribo este comentario para agradecerte por este efecto mouseover y decirte que podes entrar a mi blog (e4q.blogspot.com) para ver como lo aplique a mi "header" !!!

Muchas gracias Gem@ !!!

Responder
Gem@

Gracias por molestarte en comentar ???4Qv?, en verdad que se agradece mucho saber el resultado que podéis obtener de estas explicaciones.
El logo ha quedado genial, ha sido una buena idea que adaptaras el rollover para crear ese efecto llamativo en la página (por cierto muy currada) me gusta ;)

Responder
Luna

Un abrazo y una consulta: ¿crees que se puede conseguir que una de las imagenes o ambas del rollover se puedan transforma en links?

Responder
Gem@

CONTACTO donde dice a href= "#" sustituye el asterisco # por la url de la página.

Responder
Unknown

oye gema ese script se usa por cada rollover que tengas?

Responder
Gem@

Así es Đя©K, pero no es imprescindible, hay algunas alternativas si se trata de añadir a varias imágenes en una misma página, mira aquí:
Rollover (Imagen que cambia al pasar el cursor)

Aquí para añadir un efecto tal como opacidad, color ect...
Rollover con efecto opacidad
Efecto rollover en enlacesde texto.

Suerte ;)

Responder
Priamo

Gema que cambios habria que realizar para que en vez de que la segunda imagen, al pasar el cursor por encima, sea otra imagen apareciese un Texto.
Muchas gracias

Responder
Anónimo

Comentas que donde dice: a href="#" si se sutituye el # por la url deseada se accede a dicha direccion. Hago lo que dices,creo yo, y no me accede.Me puedes indicar que tengo mal.

Veras mi idea inicial era: En mi blog son dos imagenes en rollover y quisiera que debajo de cada una poner una url de acceso con el nombre de Mi perfil,Mi historia.

MI BLOG en esta ocasion ES: priamo25.blogspot.com

Perdona por mi pesadez pero te juro que le doy mil vueltas pero al final me tengo que dirigir a ti.
Gracias

Responder
Gem@

Priamo quieres que se muestre una imagen y al pasar el cursor en lugar de otra imagen se muestre un texto ¿es eso?
Esto es un rollover de imágenes habría que hacer una imagen con este texto.
Un ejemplo sería :
<center><br /><a href="http://priamo25.blogspot.com/" onclick="returnfalse;" onmouseover="document.prueba.src='aqui la url de la imagen que se visualiza" onmouseout="prueba.src='aqui la url de la imagen con el texto';"><br /><img name="prueba" src="aqui añadimos otra vez la url de la primera imagen" alt="ejemplo de rolloversimple" border="0" height="100" width="130" /><br /></a></center>

Con eso conseguimos que se muestre la primra imagen y al pasar el cursor aparezca la segunda imagen con el texto.
Cuando retiramos el cursor volvemos a ver la primera imagen y a la vez si clicamos sobre cualquiera de ellas nos lleva a tu página.

Responder
Anónimo

Gracias pero siento no haberme explicado bien, esto que dices no es lo que esperaba pero me servirá como otra opcion más adelante.
Veras si accedes a mi blog (priamo25.blogspot.com) veras arriba a la derecha dos fotos en rollover, lo que quisiera es (estas dos opciones me valdrian ):
a.- Poner debajo de cada foto un link a una pagina web.
b.- Que al acceder a la 2ª foto del rollover me redigiera a una pagina web.En este caso recomendaste a Anonimo ,preguntaba lo mismo, que donde decia (a href="#") el # se sutituyera por la direccion de la pag.
Bien lo he hecho pero no accedo. Algo falla o alguna cosa hago mal.
Gracias nueavmente

Responder
Gem@

Priamo para poner un enlace debajo de caga imagen añade:
<a href="url-de-la-página">Aquí el texto</a>
La recomendación para anónimo es la correcta si te fijas en la tercera y última imagen de esta entrada le añadí un enlace a esta página y al clicar sobre ella la actualiza es decir nos lleva a inicio.
Repasa tu código debe ser algún error ;)

Responder
Priamo

Muchas gracias lo revisaré.
Por cierto una cosa más: Si accedes mi blog: eltallerdepriamo.blogspot.com veras que en la sidebar hay una foto en rollover y me gustaria ponerla a la izquierda de la sidebar y que tanto el texto:(Mi perfil como perfiltroyano) quedaran centradas a la derecha de la foto o una arriba y otra abajo pero siempre centradas y a la derecha de la foto.Es por ganarle espacio a la sidebar.Agradecido

Responder
Anónimo

Hola Gema.

Tengo un problema con blogger al seguir tus instrucciones e intentar hacer un boton con rollover.

Pongo el codigo, bien escrito todo y probado en un programa de diseño html. Guarda la plantilla en blogger y cuando voy al blog, se me han sustituido varios caracteres, con lo cual no sale el rollover.

¿Donde puede estar el problema?

Saludos.

Responder
Gem@

yz El problemas es que los códigos que crea el programa no sean los mismos que los que admite Blogger, si lo dejas añadido en algún blog lo puedo ver.

Responder
Anónimo

Hola Gema. Te cuento. El fallo no es del editor externo. Tengo problemas editandolo directamente en el editor de plantillas que lleva integrado Blogger.

Ahi fue donde note las cosas raras. Al insertar el atributo onmouseOut="document.rollover.src='tu-imagen';" las comas simples (') que estan envolviendo a Tu-imagen me desarapecen, y me son sustituidas por $apos; que son barras invertidas \, quedando el codigo inservible cuando sale a la web y ves el codigo fuente.

Gracias por tu atencion.

Un saludo.

Responder
Gem@

yz Arturo que el código se altere una vez guardamos los cambios no es extraño lo extraño es que ese código se visualice en el blog en lugar de verse el resultado del código. Por eso te digo que debería verlo y descartar que se trata de un error del código o de la plantilla :)
Si quieres añádelo en un blog de pruebas y me avisas.

Responder
Anónimo

Digo que se ve el codigo fuente porque yo lo miro, no porque se vea de frente en la web. El sitio es puremetalsound.blogspot.com

Los dos botones que te encuentras enfrentes son los que estoy solucionando. Ahora mismo tengo una solucion pasajera, porque yo realmente lo que quiero es sustituirlo por otra imagen, pero ya digo que no puedo. Ahora estan fundidos a traves de css una unica imagen.

Responder
Gem@

yz Arturo, en el código fuente a veces no se muestra el código tal como lo añadimos no debes confiarte de ese detalle.
Mira este es un ejemplo de un rollover con las dos imágenes que tienes ahora, es para que pruebes a copiar y pegar en tu blog.

<center>
<a onmouseover="document.prueba.src='http://sites.google.com/site/puremetalsound/Home/pastilla_contacto_png.png';" onmouseout="prueba.src='http://sites.google.com/site/puremetalsound/Home/pastilla_dossier_OFF_png.png';" href="http://gemablog-.blogspot.com/" onclick="returnfalse;">
<img border="0" alt="ejemplo de rolloversimple" src="http://sites.google.com/site/puremetalsound/Home/pastilla_contacto_png.png" name="prueba"/>
</a></center>

Responder
Anónimo

Hola, tengo este código, y tampoco funciona:

(cita aqui)
http://rafb.net/p/sHQdng40.html

Responder
Gem@

yz Arturo el enlace está roto :(
Hay un detalle que me pasé por alto y es que estás añadiendo el código en el editor de las ¿plantillas?
Intenta incluirlo en un gadget de html puede que tu te estés refieriendo a eso pero si no fuera así puedes probar.

Responder
kaasy

Hola!! me sirvio mucho tu explicacion, otras no me funcionaban o no las entendia bien. Muchas gracias por el aporte!!
Tengo un problema te explico...
quiero hacer una lista (en una entrada del blog)con todas las imagenes con rollover, al poner una funciona perfectamente pero poner varias no funciona.
Hay alguna manera de arreglarlo o no se puede?
Gracias ^^

Responder
Gem@

yz Mira esta entrada kaasy ;)

Responder
kaasy

siento si no me entero muy bien... u.u
pero no pretendo poner opacidad en las imagenes, solo el rollover que en esta entrada explicas como hacerlo pero en varias imagenes.
Si ese es el link que necesito no entiendo donde ponerlo, si me lo puedes explicar te lo agradeceria ^^
Siento si no me explico bien...

Responder
Gem@

yz kaasy, lo siento me confundí de enlace, mira por si fuera esto lo que buscas.

Responder
Anónimo

Hola Gema, veras una consulta, el efcto del rollover este, se puede hacer a la inversa, es decir que la imagen aparzca como es, y al pasar el raton se quede en gris

Gracias

Un saludo, tu blog me es muy util

Responder
Gem@

yz Este ejemplo se hizo con dos imágenes distintas, conseguimos el efecto contrario simplemente alterando el orden de las imágenes.

Responder
Forrito

hola, intente hacer este efecto pero nose como hacerlo fuera de las entradas.

hay alguna forma para que yo ajuste con un codigo o algo para que pueda llevar la imagen con efecto rollover fuera de los post ? que no sea insertarlo en un widget ?.

Responder
Gem@

:: Puedes añadirlo en cualquier sitio Forrito.
El script debe ir en la plantilla y el código para las imágenes donde deseas añadirlo por ejemplo en un gadget de html ;)

Responder
Forrito

claro eso entiendo pero me referia a que no quiero añadirlo en un gadget tampoco en una entrada quisiera ubicarlo en otros lugar a mi gusto he visto otros blogs que lo hacen para que se suscriban a sus feeds o cosas asi .agradeceria tu ayuda ya que los demas bloggers me entienden pero al explicarme es como si me hablaran en idioma blogger que no entiendo.

Responder
Forrito

por ejemplo, es como si a la imagen de tu blog que dice "TOP" le aumentaras el efecto rollover a eso yo me referia.

una imagen desubicada + el efecto rollover

¿como logro tener lo que te explique? podrias darme un ejemplo hecho del codigo de lo que seria la idea con cualquier imagen ?.


Mil gracias..

Responder
Gem@

:: En ese caso yo creo que sería mejor utilizar sprites, no lo he probado pero con esta entrada de Vagabundia puedes hacerte una idea.
http://vagabundia.blogspot.com/2009/11/sobre-el-uso-de-los-sprites.html

Responder

Los comentarios han sido inhabilitados temporalmente. ¡GRACIAS!

:):'(:(:P:D:$;):-I:X:O|O:S

Nota: solo los miembros de este blog pueden publicar comentarios.

 


top